<?php

class PresupuestosController extends AppController {

    var $name = 'Presupuestos';
    var $uses = array('Presupuesto', 'OrdenInspeccion');
    var $paginate = array(
        'order' => array('Presupuesto.fecha' => 'desc'));
    var $components = array('Search.Prg');

    public $presetVars = array(
            array('field' => 'empresa', 'type' => 'value'));

    function index() {
        $this->Presupuesto->recursive = 0;
        $this->Prg->commonProcess();
        $this->paginate['conditions'] = $this->Presupuesto->parseCriteria($this->passedArgs);
        $this->set('presupuestos', $this->paginate());
    }

    function index_requisicion() {
        $this->Presupuesto->recursive = 0;
        $this->Prg->commonProcess();
        $this->paginate['conditions'] = $this->Presupuesto->parseCriteria($this->passedArgs);
        $this->set('presupuestos', $this->paginate());
    }

    function view($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Registro no encontrado', true));
            $this->redirect(array('action' => 'index'));
        }
        $this->set('presupuesto', $this->Presupuesto->read(null, $id));
    }

    function add($idOI = null) {
//        if (!$idOI && empty($this->data)) {
//            $this->Session->setFlash(__('Seleccione una orden de inspeccion', true));
//            $this->redirect(array('action' => 'index'));
//        }
        if (!empty($this->data)) {
            $this->Presupuesto->create();
            if ($this->Presupuesto->save($this->data)) {
                $this->Session->setFlash(__('El registro se guardo satisfactoriamente', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('El registro no pudo ser ingresado debido a un problema. Verifique si no es un registro duplicado', true));
            }
        }
        $ordenInspeccion = $this->Presupuesto->OrdenInspeccion->findById($idOI);
        $this->data["Presupuesto"]["orden_inspeccion_id"] = $idOI;
        $encargados = $this->Presupuesto->Encargado->find('list');
        $this->set(compact('ordenInspeccion','encargados'));
    }

    function edit($id = null) {
        if (!$id && empty($this->data)) {
            $this->Session->setFlash(__('Registro no encontrado', true));
            $this->redirect(array('action' => 'index'));
        }
        if (!empty($this->data)) {
            if ($this->Presupuesto->save($this->data)) {
                $this->Session->setFlash(__('El registro se actualizo correctamente', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('La informacion no se guardo debido a un error interno.', true));
            }
        }
        if (empty($this->data)) {
            $this->data = $this->Presupuesto->read(null, $id);
        }
        $encargados = $this->Presupuesto->Encargado->find('list');
        $this->set(compact('encargados'));
    }

    function delete($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('No se encontro registro', true));
            $this->redirect(array('action' => 'index'));
        }
        if ($this->Presupuesto->delete($id)) {
            $this->Session->setFlash(__('Registro eliminado exitosamente', true));
            $this->redirect(array('action' => 'index'));
        }
        $this->Session->setFlash(__('No se pudo eliminar registro', true));
        $this->redirect(array('action' => 'index'));
    }

}
?>